package com.ggh.handler.gameUtil;

import com.ggh.entity.RoomBeanP;
import com.ggh.entity.User;
import com.ggh.entity.UserBean;
import com.ggh.handler.BeginToJudgePKPSiRen;
import com.ggh.service.UserService;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * @author jj
 * @date 2019/11/14 10:50
 */
public class ClearingHandler {
    /**
    * @description :四人结算
    * @date : 2019/11/14 10:51
    * @author : jj
    */
    public static void  clearingSr(RoomBeanP room,UserService userService,BeginToJudgePKPSiRen pkx){
        //获取用户
        UserBean uz = room.getUserBean(room.getBanker());
        /*闲家输了*/
        List<UserBean> userList=new ArrayList<>();
        room.getGame_userlist().forEach(user->{
            if (user.getBanker()!=2){
                if (user.getHu_state()==2) {
                    user.getPotList().forEach(mny -> {
                        /*闲家*/
                        user.setMoney(user.getMoney()-mny);
                        user.setZfen(user.getZfen()-mny);
                        user.setSyfen(user.getSyfen()-mny);
                        /*庄家*/
                        uz.setMoney(uz.getMoney()+mny);
                        uz.setZfen(uz.getZfen()+mny);
                        uz.setSyfen(uz.getSyfen()+mny);
                    });
                    User ur = userService.getById(user.getUserid());
                    ur.setMoney(user.getMoney());
                    userService.updateById(ur);
                }else {

                    userList.add(user);
                }
            }
        });
        /*庄家输了*/
        userList.forEach(userBean -> {
            userList.forEach(us -> {
                pkx.contrast(room, userBean, us);
                //谁赢谁位置靠前
                if (us.getHu_state() == 1) {
                    int i = userList.indexOf(us);
                    int j = userList.indexOf(userBean);
                    Collections.swap(userList, i, j);
                }
            });
        });
        /*扣除金币*/
        userList.forEach(use -> {
            UserBean u=room.getUserBean(use.getUserid());
            u.getPotList().forEach(mny -> {
                if (uz.getMoney()-mny>0) {
                    uz.setMoney(uz.getMoney() - mny);
                    uz.setZfen(uz.getZfen()-mny);
                    uz.setSyfen(uz.getSyfen()-mny);
                    u.setMoney(u.getMoney() + mny);
                    u.setZfen(u.getZfen() + mny);
                    u.setSyfen(u.getSyfen() + mny);
                }else {
                    u.setMoney(u.getMoney()+uz.getMoney());
                    uz.setMoney(0);
                }
            });
            User ur = userService.getById(u.getUserid());
            ur.setMoney(u.getMoney());
            userService.updateById(ur);
        });
        User ur=userService.getById(uz.getUserid());
        ur.setMoney(uz.getMoney());
        userService.updateById(ur);
    }
}
